<html>
<head><meta charset="utf-8"><title>design meeting 2019-12-06 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html">design meeting 2019-12-06</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="182764879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182764879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182764879">(Dec 06 2019 at 14:24)</a>:</h4>
<p>Hey <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> , we'll be starting this week's design meeting in about 36 minutes</p>



<a name="182764984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182764984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182764984">(Dec 06 2019 at 14:26)</a>:</h4>
<p>today's topic is "migrate rustc_interface queries", <a href="https://github.com/rust-lang/compiler-team/issues/175" target="_blank" title="https://github.com/rust-lang/compiler-team/issues/175">compiler-team#175</a></p>



<a name="182765015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182765015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182765015">(Dec 06 2019 at 14:26)</a>:</h4>
<p>(a little pre-meeting discussion has been going on in <a href="#narrow/stream/131828-t-compiler/topic/pre-design.20meeting.202019-12-05/near/182675571" title="#narrow/stream/131828-t-compiler/topic/pre-design.20meeting.202019-12-05/near/182675571">another zulip topic</a>)</p>



<a name="182766999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182766999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182766999">(Dec 06 2019 at 14:48)</a>:</h4>
<p>Here is a <a href="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg" target="_blank" title="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg">hackmd</a> where I'll try to take notes etc, it has a collection of links to start</p>



<a name="182767098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182767098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182767098">(Dec 06 2019 at 14:49)</a>:</h4>
<p>ugh, hackmd deals really poorly with being horizontally tiled</p>



<a name="182767855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182767855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182767855">(Dec 06 2019 at 14:56)</a>:</h4>
<p>So did you want to talk about what high-level strategy we should take to make the earlier parts of the compiler incremental too?</p>



<a name="182768052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768052">(Dec 06 2019 at 14:58)</a>:</h4>
<p>I'm not sure I understand the question</p>



<a name="182768136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768136">(Dec 06 2019 at 14:59)</a>:</h4>
<p>I guess maybe you're saying -- should we talk about e.g. what to do to parsing in praticular?</p>



<a name="182768142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768142">(Dec 06 2019 at 15:00)</a>:</h4>
<p>(or some other component)</p>



<a name="182768212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768212">(Dec 06 2019 at 15:00)</a>:</h4>
<p>Hey <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> -- design meeting starting now!</p>



<a name="182768225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768225">(Dec 06 2019 at 15:00)</a>:</h4>
<blockquote>
<p>today's topic is "migrate rustc_interface queries", <a href="https://github.com/rust-lang/compiler-team/issues/175" target="_blank" title="https://github.com/rust-lang/compiler-team/issues/175">compiler-team#175</a></p>
</blockquote>



<a name="182768230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768230">(Dec 06 2019 at 15:00)</a>:</h4>
<blockquote>
<p>Here is a <a href="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg" target="_blank" title="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg">hackmd</a> where I'll try to take notes etc, it has a collection of links to start</p>
</blockquote>



<a name="182768237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768237">(Dec 06 2019 at 15:00)</a>:</h4>
<h1>Announcements</h1>



<a name="182768376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768376">(Dec 06 2019 at 15:02)</a>:</h4>
<p>No, I just wasn't sure what exactly you meant by <code>what high-level strategy we take</code>.</p>



<a name="182768637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768637">(Dec 06 2019 at 15:05)</a>:</h4>
<p>Yeah a fair question :) I guess we'll get into it. I think what I meant was probably multiple things. </p>
<p>One of them is this: I think that these PRs endeavor to push the "query system" back all the way to the parser, but in some cases they do they by kind of working around the query system (this is particularly true in the HIR PR, maybe less so in the others). It might be nicer to just look at (e.g.) how to make HIR lowering incremental first, but try to do it in a way that either leverages query system or -- if it's not sufficient as is -- extends it first.</p>



<a name="182768675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768675">(Dec 06 2019 at 15:05)</a>:</h4>
<p>Our options would be to 1) extend the query system further back, 2) use some other incremental system before the existing system, 3) some combination of the above, 4) do nothing yet</p>



<a name="182768747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768747">(Dec 06 2019 at 15:06)</a>:</h4>
<p>But I think there's also the question (to me) of how end-to-end query refactoring should fit in with things like library-ification and rust-analyzer -- we can only be changing and moving so many at a time.</p>



<a name="182768774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768774">(Dec 06 2019 at 15:06)</a>:</h4>
<p>Anyway, I haven't seen any announcements yet, I guess we could get started?</p>



<a name="182768809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768809">(Dec 06 2019 at 15:07)</a>:</h4>
<p>( cc <span class="user-mention" data-user-id="119009">@eddyb</span>, <span class="user-mention" data-user-id="133169">@matklad</span>, two people I think might have relevant thoughts that I didn't see in the <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span> list above )</p>



<a name="182768861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768861">(Dec 06 2019 at 15:07)</a>:</h4>
<p>OK, well, the idea is to talk about end-to-end queries and especially the PR series that <span class="user-mention" data-user-id="116466">@Zoxc</span> described in this <a href="https://internals.rust-lang.org/t/migrating-rustc-interface-queries-to-proper-librustc-queries/10433" target="_blank" title="https://internals.rust-lang.org/t/migrating-rustc-interface-queries-to-proper-librustc-queries/10433">internals thread</a></p>



<a name="182768926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768926">(Dec 06 2019 at 15:08)</a>:</h4>
<p>First question perhaps, do people feel like they know what "end-to-end queries" means?</p>



<a name="182768987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182768987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182768987">(Dec 06 2019 at 15:09)</a>:</h4>
<p>In short, right now, the "query system" -- and hence incremental compilation -- starts only once HIR is constructed. We always parse the entire crate, do macro expansion and name resolution, and create the full HIR.</p>



<a name="182769010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769010">(Dec 06 2019 at 15:09)</a>:</h4>
<p>This can be a performance problem for incremental compilation</p>



<a name="182769026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769026">(Dec 06 2019 at 15:09)</a>:</h4>
<p>Since it's kind of a "minimum bar" of work we always do</p>



<a name="182769035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769035">(Dec 06 2019 at 15:09)</a>:</h4>
<p>It's also just non-uniform</p>



<a name="182769057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769057">(Dec 06 2019 at 15:09)</a>:</h4>
<p>Anyway, I'm presuming that's mostly familiar</p>



<a name="182769166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769166">(Dec 06 2019 at 15:10)</a>:</h4>
<p>I'm debating what foot to start on :) I feel like we should talk a bit about the PRs under discussion and what they do?</p>



<a name="182769254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769254">(Dec 06 2019 at 15:11)</a>:</h4>
<p>in the <a href="#narrow/stream/131828-t-compiler/topic/pre-design.20meeting.202019-12-05/near/182675571" title="#narrow/stream/131828-t-compiler/topic/pre-design.20meeting.202019-12-05/near/182675571">pre-discussion</a>, there was a claim</p>



<a name="182769320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769320">(Dec 06 2019 at 15:12)</a>:</h4>
<p>that these PR's, or at least some of them, aim to do the simplest possible thing to get to end-to-end queries</p>



<a name="182769342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769342">(Dec 06 2019 at 15:12)</a>:</h4>
<p>if we could explain them in <em>that</em> light, it would be helpful</p>



<a name="182769397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769397">(Dec 06 2019 at 15:12)</a>:</h4>
<p>in the sense of trying to tease out what they do, and why/whether that is truly the minimal/simplest thing possible</p>



<a name="182769429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769429">(Dec 06 2019 at 15:13)</a>:</h4>
<p>Makes sense. <span class="user-mention" data-user-id="116466">@Zoxc</span> if you want to jump in, obviously, feel free, I can try to give my take, based primarily on the internals thread.</p>



<a name="182769454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769454">(Dec 06 2019 at 15:13)</a>:</h4>
<p>Basically the PRs kind of go phase by phase, to <em>some</em> extent</p>



<a name="182769483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769483">(Dec 06 2019 at 15:13)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="182769488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769488">(Dec 06 2019 at 15:13)</a>:</h4>
<p>e.g., right now we construct this "HIR map" that indexes all the HIR, and that is passed to the tcx constructor I believe as a value</p>



<a name="182769558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769558">(Dec 06 2019 at 15:14)</a>:</h4>
<p>But <a href="https://github.com/rust-lang/rust/issues/59064" target="_blank" title="https://github.com/rust-lang/rust/issues/59064">#59064</a> tries to move that into a query method</p>



<a name="182769592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769592">(Dec 06 2019 at 15:14)</a>:</h4>
<p>This is a kind of "global query" in that there is only really one hir map</p>



<a name="182769601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769601">(Dec 06 2019 at 15:14)</a>:</h4>
<p>so the key is basically <code>()</code> (I guess?)</p>



<a name="182769651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769651">(Dec 06 2019 at 15:15)</a>:</h4>
<p>the internals doc makes some side comment about potentially in the future trying to move away from a single global hir_map</p>



<a name="182769654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769654">(Dec 06 2019 at 15:15)</a>:</h4>
<p>there is various bits of special treatment</p>



<a name="182769685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769685">(Dec 06 2019 at 15:15)</a>:</h4>
<p>Yeah, I think is a key point</p>



<a name="182769704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769704">(Dec 06 2019 at 15:15)</a>:</h4>
<p>The key is a <code>CrateNum</code>, but it's basically global since we only compile one crate at a time now</p>



<a name="182769815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769815">(Dec 06 2019 at 15:16)</a>:</h4>
<p>I think right now the <code>hir_map</code> query is rather special and not treated as a normal incremental value -- otherwise basically everything would be dirty</p>



<a name="182769821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769821">(Dec 06 2019 at 15:16)</a>:</h4>
<p>sorry, this is actually true in "master"</p>



<a name="182769823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769823">(Dec 06 2019 at 15:16)</a>:</h4>
<p>but it's also true in that PR</p>



<a name="182769828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769828">(Dec 06 2019 at 15:16)</a>:</h4>
<p>i.e., by "right now" I meant after the PR lands</p>



<a name="182769845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769845">(Dec 06 2019 at 15:16)</a>:</h4>
<p>when you e.g. request a bit of HIR from the map, there is special logic that adds the appropate dependencies</p>



<a name="182769903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769903">(Dec 06 2019 at 15:17)</a>:</h4>
<p>this is definitely one of the things that <span class="user-mention" data-user-id="124287">@mw</span> and I were concerned about -- that right now, we'd prefer to be moving towards a system with fewer special cases</p>



<a name="182769977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769977">(Dec 06 2019 at 15:18)</a>:</h4>
<p>that would be one of the main advantages of end-to-end queries</p>



<a name="182769981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182769981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182769981">(Dec 06 2019 at 15:18)</a>:</h4>
<p>this comment from the internals thread sounds closer to the kind of thing I am thinking of:</p>
<blockquote>
<p>I imagine we’ll replace the hir_map and hir function and cache with a query which takes an item and returns a smaller map for just the ItemLocalIds for that item. Another krate query can replace the whole crate API’s in the HIR map. I’m not sure how well this scheme will perform. In particular we may want a method to avoid hashing the HIR twice. Having krate be a no_hash query might suffice here.</p>
</blockquote>



<a name="182770021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770021">(Dec 06 2019 at 15:18)</a>:</h4>
<p>After landing that PR, we could replace the HIR map with its special logic with queries instead, and rely on queries for correctness</p>



<a name="182770108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770108">(Dec 06 2019 at 15:19)</a>:</h4>
<p>A goal for the PRs was really to allow every pass to be turned into queries in parallel (and not just a step at a time)</p>



<a name="182770138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770138">(Dec 06 2019 at 15:19)</a>:</h4>
<p>I would prefer if we did the fully queried version of HIR indexing to begin with</p>



<a name="182770222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770222">(Dec 06 2019 at 15:20)</a>:</h4>
<p>Right, so there's a kind of "high-level strategy" question of whether to first get everything into the query system (with suitable special cases) and then slowly clean it up, or to try and clean it up as we go and push the boundary back</p>



<a name="182770282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770282">(Dec 06 2019 at 15:20)</a>:</h4>
<p>I'm curious, btw, <span class="user-mention" data-user-id="124287">@mw</span> -- you mentioned measurements of compilation time that would benefit, I think you said something like 40% of compilation time came before HIR, do you have more specific numbers?</p>



<a name="182770296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770296">(Dec 06 2019 at 15:20)</a>:</h4>
<p>I guess maybe we can find that on perf</p>



<a name="182770331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770331">(Dec 06 2019 at 15:21)</a>:</h4>
<p>In particular, I was wondering whether parsing, macro expansion, or HIR lowering represented an "outsized" chunk of it</p>



<a name="182770348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770348">(Dec 06 2019 at 15:21)</a>:</h4>
<p>that was a clean webrender check build of a recent nightly</p>



<a name="182770403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770403">(Dec 06 2019 at 15:21)</a>:</h4>
<blockquote>
<p>I would prefer if we did the fully queried version of HIR indexing to begin with</p>
</blockquote>
<p>I think I would prefer this too; I can imagine that moving "hir map" to a query is a good first step, but that's not obvious. I would think we can convert the hir map methods to queries first, and come to (more and more) rely on the standard red-green hashing</p>



<a name="182770499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770499">(Dec 06 2019 at 15:22)</a>:</h4>
<p><a href="https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean%20incremental" target="_blank" title="https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean%20incremental">https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean%20incremental</a></p>



<a name="182770544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770544">(Dec 06 2019 at 15:22)</a>:</h4>
<p>I'm trying to understand: Is "fully queried version of HIR indexing" <em>anywhere</em> in the PR series we're discussing?</p>



<a name="182770553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770553">(Dec 06 2019 at 15:23)</a>:</h4>
<p>The PR is a prerequisite to move any part of HIR indexing into queries though.</p>



<a name="182770567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770567">(Dec 06 2019 at 15:23)</a>:</h4>
<p>I don't see it in the internals thread, at least not from what I can see</p>



<a name="182770573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770573">(Dec 06 2019 at 15:23)</a>:</h4>
<blockquote>
<p>I'm trying to understand: Is "fully queried version of HIR indexing" <em>anywhere</em> in the PR series we're discussing?</p>
</blockquote>
<p>I don't thnk so</p>



<a name="182770576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770576">(Dec 06 2019 at 15:23)</a>:</h4>
<p>It is not.</p>



<a name="182770579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770579">(Dec 06 2019 at 15:23)</a>:</h4>
<p>for reference, a non-incremental check build spends more like 10% before incremental kicks in: <a href="https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean" target="_blank" title="https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean">https://perf.rust-lang.org/detailed-query.html?commit=d0126e8ed3cc0d6fcb9dd44c36a46f9ce65010a0&amp;benchmark=webrender-check&amp;run_name=clean</a></p>



<a name="182770706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770706">(Dec 06 2019 at 15:24)</a>:</h4>
<p>so in those numbers, <code>build_hir_map</code> (for example) is about 9.17%, parsing is 9%, macro expansion 9%, and resolve 10%</p>



<a name="182770708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770708">(Dec 06 2019 at 15:24)</a>:</h4>
<blockquote>
<p>The PR is a prerequisite to move any part of HIR indexing into queries though.</p>
</blockquote>
<p>"The PR" being <a href="https://github.com/rust-lang/rust/issues/59064" target="_blank" title="https://github.com/rust-lang/rust/issues/59064">#59064</a>, right?</p>



<a name="182770713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770713">(Dec 06 2019 at 15:24)</a>:</h4>
<p>pretty clean distribution :)</p>



<a name="182770750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770750">(Dec 06 2019 at 15:24)</a>:</h4>
<p>I guess <span class="user-mention" data-user-id="116466">@Zoxc</span> (a) I'm not sure that the PR is a pre-req but also (b) I'd rather talk about the end-state we are trying to build first</p>



<a name="182770753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770753">(Dec 06 2019 at 15:24)</a>:</h4>
<p>and then figure out the steps we take to get there</p>



<a name="182770758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770758">(Dec 06 2019 at 15:24)</a>:</h4>
<p>then start with the steps</p>



<a name="182770769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770769">(Dec 06 2019 at 15:24)</a>:</h4>
<p>and I still don't quite see <em>that</em> design</p>



<a name="182770788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770788">(Dec 06 2019 at 15:24)</a>:</h4>
<p>(though I suspect we have similar things in mind)</p>



<a name="182770835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770835">(Dec 06 2019 at 15:25)</a>:</h4>
<p>I think for example I would expect to ultimately have any HIR map at all</p>



<a name="182770879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770879">(Dec 06 2019 at 15:25)</a>:</h4>
<p>there would probably just be "base queries" that extract out the HIR for a given item, and rely on red-green hashing</p>



<a name="182770890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770890">(Dec 06 2019 at 15:25)</a>:</h4>
<p>those queries would do the lowering on demand</p>



<a name="182770978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182770978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182770978">(Dec 06 2019 at 15:26)</a>:</h4>
<p>(this is partly why I pinged <span class="user-mention" data-user-id="133169">@matklad</span>, since I thiink that rust-analyzer has been carving out a path much like this; I know it's what we were doing experimentally when building Lark too)</p>



<a name="182771052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771052">(Dec 06 2019 at 15:27)</a>:</h4>
<p>Yeah, in rust-analyzer we build a map of top-level items, and each body is a separate map/query</p>



<a name="182771236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771236">(Dec 06 2019 at 15:28)</a>:</h4>
<p>I'd expect a similar fate for the HIR map. I do worry about the performance of that (for clean builds), but hopefully we can make any regression small.</p>



<a name="182771322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771322">(Dec 06 2019 at 15:29)</a>:</h4>
<p>so is the question if a step like <a href="https://github.com/rust-lang/rust/issues/59064" target="_blank" title="https://github.com/rust-lang/rust/issues/59064">#59064</a> is not worth taking, compared to trying to work towards a design where there are per-item queries?</p>



<a name="182771420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771420">(Dec 06 2019 at 15:30)</a>:</h4>
<p>I thnk there are two questions -- one is whether that's a useful step, and the other is whether we should kind of do a "component at a time"</p>



<a name="182771442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771442">(Dec 06 2019 at 15:30)</a>:</h4>
<p>well maybe 3</p>



<a name="182771465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771465">(Dec 06 2019 at 15:30)</a>:</h4>
<p>or rather, I tink the first question of "is it a step worth taking" is hard to answer without knowing the next steps (for the HIR map specifically) or the destination</p>



<a name="182771528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771528">(Dec 06 2019 at 15:31)</a>:</h4>
<p>I guess I'm nervous about accumulating more tech debt</p>



<a name="182771532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771532">(Dec 06 2019 at 15:31)</a>:</h4>
<p>vs trying to clean up</p>



<a name="182771558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771558">(Dec 06 2019 at 15:31)</a>:</h4>
<p>for example, when it comes to HIR, we <em>still</em> have (afaik) a kind of unresolved effort around the transition to <code>HirId</code></p>



<a name="182771577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771577">(Dec 06 2019 at 15:31)</a>:</h4>
<p>I expect to see something like <code>tcx.hir(def_id)</code> giving you a view of def_id and nothing more</p>



<a name="182771636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771636">(Dec 06 2019 at 15:32)</a>:</h4>
<p>That I think is a good thing to be shooting for</p>



<a name="182771661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771661">(Dec 06 2019 at 15:32)</a>:</h4>
<p>with no incremental tracking inside any of the map methods on the result of thst</p>



<a name="182771671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771671">(Dec 06 2019 at 15:32)</a>:</h4>
<p>Right</p>



<a name="182771676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771676">(Dec 06 2019 at 15:32)</a>:</h4>
<p>so I expect it to be a perf win</p>



<a name="182771693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771693">(Dec 06 2019 at 15:32)</a>:</h4>
<p>well, maybe not right</p>



<a name="182771712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771712">(Dec 06 2019 at 15:33)</a>:</h4>
<p>it's unlikely that it is a win</p>



<a name="182771716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771716">(Dec 06 2019 at 15:33)</a>:</h4>
<p>I think you're saying -- we wouldn't bother to hash the results of various methods that extract bits of info from that?</p>



<a name="182771720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771720">(Dec 06 2019 at 15:33)</a>:</h4>
<p>and we can try to move to that API independently of querification</p>



<a name="182771734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771734">(Dec 06 2019 at 15:33)</a>:</h4>
<p>It seems like we agreed on the end state of the HIR indexing. I don't think that end state will be hard to reach either, so I'm not too worried about the path there.</p>



<a name="182771751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771751">(Dec 06 2019 at 15:33)</a>:</h4>
<p>I guess I thikn that's a somewhat separate question, but I would imagine we can tune that</p>



<a name="182771780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771780">(Dec 06 2019 at 15:33)</a>:</h4>
<p>but getting rid of lots of complicated special casing worth a bit of a regression, I think</p>



<a name="182771804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771804">(Dec 06 2019 at 15:33)</a>:</h4>
<p>right now every method has to register a read</p>



<a name="182771903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771903">(Dec 06 2019 at 15:34)</a>:</h4>
<p>on the DepNode that's effectively Hir(def_id)</p>



<a name="182771943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771943">(Dec 06 2019 at 15:34)</a>:</h4>
<blockquote>
<p>It seems like we agreed on the end state of the HIR indexing. I don't think that end state will be hard to reach either, so I'm not too worried about the path there.</p>
</blockquote>
<p>I am maybe a bit more worried :) not about the path, but about describing the end-state. As I said, I sort of feel like we haven't fully paid down our "tech debt" from the first dive into incremental, and I want us to be in a mode where we're decreasing the total by working towards a documented, uniform design (that we've actually written out)</p>



<a name="182771958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182771958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182771958">(Dec 06 2019 at 15:35)</a>:</h4>
<p>ideally anything like a visitor would keep a tcx.hir(def_id) around</p>



<a name="182772016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772016">(Dec 06 2019 at 15:35)</a>:</h4>
<p>yeah I thnk you're just saying that</p>



<a name="182772035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772035">(Dec 06 2019 at 15:35)</a>:</h4>
<p>reducing N trips to the dep graph to 1</p>



<a name="182772037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772037">(Dec 06 2019 at 15:35)</a>:</h4>
<p>there are queriies that (e.g.) take a single input and do some transformation on it</p>



<a name="182772053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772053">(Dec 06 2019 at 15:35)</a>:</h4>
<p>and it's not necessarily worth even caching them</p>



<a name="182772057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772057">(Dec 06 2019 at 15:35)</a>:</h4>
<p>much less hashing their results</p>



<a name="182772074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772074">(Dec 06 2019 at 15:35)</a>:</h4>
<p>they can be considered dirty if their input is dirty</p>



<a name="182772087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772087">(Dec 06 2019 at 15:35)</a>:</h4>
<p>not sure what you are talking about</p>



<a name="182772165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772165">(Dec 06 2019 at 15:36)</a>:</h4>
<p>were we ever going to querify HIR map methods?</p>



<a name="182772230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772230">(Dec 06 2019 at 15:36)</a>:</h4>
<p>I don't know :) I think that's what we're talking about</p>



<a name="182772238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772238">(Dec 06 2019 at 15:36)</a>:</h4>
<p>that is like querifying inherent methods on HIR patterns or MIR places, to me</p>



<a name="182772247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772247">(Dec 06 2019 at 15:37)</a>:</h4>
<p>I guess you are saying <code>tcx.hir(def_id)</code> would return something with methods itself, that are not queries</p>



<a name="182772253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772253">(Dec 06 2019 at 15:37)</a>:</h4>
<p>that extract bits of info about the HIR for that def-id</p>



<a name="182772255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772255">(Dec 06 2019 at 15:37)</a>:</h4>
<p>yes</p>



<a name="182772270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772270">(Dec 06 2019 at 15:37)</a>:</h4>
<p>yes, ok, that's roughly equivalent to what I am talking  about</p>



<a name="182772290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772290">(Dec 06 2019 at 15:37)</a>:</h4>
<p>the data is already stored per-HIR owner/root, mostly</p>



<a name="182772313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772313">(Dec 06 2019 at 15:38)</a>:</h4>
<p>so it could literally be a self-contained object</p>



<a name="182772340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772340">(Dec 06 2019 at 15:38)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> I agree that we can take a bit of a performance regression for moving HIR indexing to queries. There's probably bug fixes to be had by doing that and possibly incremental wins in the future (by no longer creating the whole HIR map)</p>



<a name="182772402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772402">(Dec 06 2019 at 15:38)</a>:</h4>
<p>So let me float an idea: instead of moving aggressively to end-to-end queries, I could imagine focusing just on the "hir" part of this design</p>



<a name="182772423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772423">(Dec 06 2019 at 15:38)</a>:</h4>
<p>with the goal of pushing the 'incremental barrier' back over hir lowering</p>



<a name="182772431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772431">(Dec 06 2019 at 15:38)</a>:</h4>
<p>so that we don't have to lower the entire HIR</p>



<a name="182772505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772505">(Dec 06 2019 at 15:39)</a>:</h4>
<p>as to remaining steps around HirId, I'm sorry I dropped the ball on that, I had a plan to streamline and make several things cheaper</p>



<a name="182772524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772524">(Dec 06 2019 at 15:40)</a>:</h4>
<p>I think it is good to move slowly here because each step opens design questions</p>



<a name="182772566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772566">(Dec 06 2019 at 15:40)</a>:</h4>
<p>had to spend a few weeks on other things</p>



<a name="182772617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772617">(Dec 06 2019 at 15:40)</a>:</h4>
<p>I was trying to move in the direction of an unified tcx.hir(def_id)</p>



<a name="182772632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772632">(Dec 06 2019 at 15:40)</a>:</h4>
<p>I don't think this falls on "your shoulders"</p>



<a name="182772647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772647">(Dec 06 2019 at 15:41)</a>:</h4>
<p>But I do think it'd be great to write out the design somewhat</p>



<a name="182772693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772693">(Dec 06 2019 at 15:41)</a>:</h4>
<p>I feel like even in this conversation we hit on some confusion -- e.g., the question of what should be a query etc</p>



<a name="182772728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772728">(Dec 06 2019 at 15:41)</a>:</h4>
<p>by introducing an Item|ImplItem|TraitItem enum and uniformizing everything that has triplicate logic for each of those</p>



<a name="182772843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772843">(Dec 06 2019 at 15:42)</a>:</h4>
<p>yeah I just mean I was going to drop a few PRs but then had to pause that work</p>



<a name="182772850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772850">(Dec 06 2019 at 15:42)</a>:</h4>
<p>(I guess that one thing I can also see is that we can't necessarily know what the design is, because it takes exploration, but I feel like we can take a stab at wrting out the "sense" we are shooting for, and then have updates when we discover parts of it that didn't work)</p>



<a name="182772899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772899">(Dec 06 2019 at 15:43)</a>:</h4>
<p>kind of like filling in a map</p>



<a name="182772916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772916">(Dec 06 2019 at 15:43)</a>:</h4>
<blockquote>
<p>So let me float an idea: instead of moving aggressively to end-to-end queries, I could imagine focusing just on the "hir" part of this design</p>
</blockquote>
<p>can we talk more about this? Or at least confirm what direction we're talking about going in ?</p>



<a name="182772938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772938">(Dec 06 2019 at 15:43)</a>:</h4>
<p>I wish we had a platform that made it easy tbh</p>



<a name="182772939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772939">(Dec 06 2019 at 15:43)</a>:</h4>
<p>I think that'd be useful</p>



<a name="182772975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772975">(Dec 06 2019 at 15:43)</a>:</h4>
<p>// at some point in this meeting I also want to discuss how to prioritize this effort with respect to other things that are already ongoing (like parallelization, the dep-graph refactoring, hir-id related refactorings, etc)</p>



<a name="182772994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182772994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182772994">(Dec 06 2019 at 15:43)</a>:</h4>
<p>Yeah, so, time-check, we're at 45 minutes</p>



<a name="182773032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773032">(Dec 06 2019 at 15:44)</a>:</h4>
<p>I think pushing back before HIR lowering makes sense. We don't have to deal with parsing errors at that point. We would also have to hash the AST at that point. The big problem there is <code>DefId</code>s though. The query system wants to treat these as <code>DefPath</code>s, but they're not. <code>DefId</code> are indices to a table produced by HIR lowering, which means that query system need to use this table to convert <code>DefId</code>s to <code>DefPath</code>s. So if we move HIR lowering into a queries the query system itself will depend on queries.</p>



<a name="182773056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773056">(Dec 06 2019 at 15:44)</a>:</h4>
<p>my reading of the PR that querifies HIR lowering (<a href="https://github.com/rust-lang/rust/issues/59205" target="_blank" title="https://github.com/rust-lang/rust/issues/59205">#59205</a>) is that it lowers the whole HIR at once</p>



<a name="182773082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773082">(Dec 06 2019 at 15:44)</a>:</h4>
<p>while the proposal of <span class="user-mention" data-user-id="116009">@nikomatsakis</span> up above was to <em>not</em> do that. Right?</p>



<a name="182773104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773104">(Dec 06 2019 at 15:44)</a>:</h4>
<p>correct</p>



<a name="182773121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773121">(Dec 06 2019 at 15:44)</a>:</h4>
<p>I  think we need to co-evolve HirId and any new HIR map designs</p>



<a name="182773210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773210">(Dec 06 2019 at 15:45)</a>:</h4>
<blockquote>
<p>I think pushing back before HIR lowering makes sense. We don't have to deal with parsing errors at that point. We would also have to hash the AST at that point. The big problem there is <code>DefId</code>s though. The query system wants to treat these as <code>DefPath</code>s, but they're not. <code>DefId</code> are indices to a table produced by HIR lowering, which means that query system need to use this table to convert <code>DefId</code>s to <code>DefPath</code>s. So if we move HIR lowering into a queries the query system itself will depend on queries.</p>
</blockquote>
<p>I really want to avoid making the query system itself depending on queries. that is a lot of added conceptual complexity.</p>



<a name="182773229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773229">(Dec 06 2019 at 15:45)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> I thought DefPaths exist before lowering</p>



<a name="182773243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773243">(Dec 06 2019 at 15:45)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> had ideas on how to create DefPaths already during parsing</p>



<a name="182773257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773257">(Dec 06 2019 at 15:45)</a>:</h4>
<p>it's just that lowering also creates them</p>



<a name="182773261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773261">(Dec 06 2019 at 15:46)</a>:</h4>
<p>and adding more during macro expansion</p>



<a name="182773316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773316">(Dec 06 2019 at 15:46)</a>:</h4>
<p>I don't .. quite know whta it means for the query system to depend on queries</p>



<a name="182773351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773351">(Dec 06 2019 at 15:46)</a>:</h4>
<p>But I think this seems like a point to note down as something to dig into</p>



<a name="182773354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773354">(Dec 06 2019 at 15:46)</a>:</h4>
<blockquote>
<p>I don't .. quite know whta it means for the query system to depend on queries</p>
</blockquote>
<p>nor do i, but I'm hoping i wont have to know</p>



<a name="182773374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773374">(Dec 06 2019 at 15:46)</a>:</h4>
<p>(Side note: salsa has a built-in notion of "interning queries", which seems relevant, but i'm not sure it's what I would suggest for rustc, I don't love it yet)</p>



<a name="182773387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773387">(Dec 06 2019 at 15:46)</a>:</h4>
<p>The solution is quite simple though. "Just" make <code>DefId</code> interned <code>DefPath</code>s.</p>



<a name="182773418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773418">(Dec 06 2019 at 15:47)</a>:</h4>
<p>Yes, that is what I was going to mention</p>



<a name="182773427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773427">(Dec 06 2019 at 15:47)</a>:</h4>
<p>they are though?</p>



<a name="182773430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773430">(Dec 06 2019 at 15:47)</a>:</h4>
<p>But I'd like to ask that we put a cap on technical "deep dive"</p>



<a name="182773432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773432">(Dec 06 2019 at 15:47)</a>:</h4>
<blockquote>
<p>The solution is quite simple though. "Just" make <code>DefId</code> interned <code>DefPath</code>s.</p>
</blockquote>
<p>does that imply making the query system depend on queries itself?</p>



<a name="182773434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773434">(Dec 06 2019 at 15:47)</a>:</h4>
<p>And address the prioritization questions that mw was raising</p>



<a name="182773438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773438">(Dec 06 2019 at 15:47)</a>:</h4>
<blockquote>
<p>they are though?</p>
</blockquote>
<p>maybe the point here is about how the intern-table is built ?</p>



<a name="182773445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773445">(Dec 06 2019 at 15:47)</a>:</h4>
<blockquote>
<p>// at some point in this meeting I also want to discuss how to prioritize this effort with respect to other things that are already ongoing (like parallelization, the dep-graph refactoring, hir-id related refactorings, etc)</p>
</blockquote>



<a name="182773508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773508">(Dec 06 2019 at 15:48)</a>:</h4>
<p>(also, I give up on the hackmd, I'm going to have to do my best to skim this meeting afterwards :)</p>



<a name="182773528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773528">(Dec 06 2019 at 15:48)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> No, that would avoid that by basically making <code>DefId</code> and <code>DefPath</code> the same thing.</p>



<a name="182773542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773542">(Dec 06 2019 at 15:48)</a>:</h4>
<p>but maybe <span class="user-mention" data-user-id="116083">@pnkfelix</span> or others, you have more "point of information" sort of questions on the "vague proposal" to focus on HIR?</p>



<a name="182773544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773544">(Dec 06 2019 at 15:48)</a>:</h4>
<p>I am confused, I thought nothing assigned DefId's without constructing a DefPath</p>



<a name="182773581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773581">(Dec 06 2019 at 15:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span>  that sounds like a good idea to me, generally speaking</p>



<a name="182773592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773592">(Dec 06 2019 at 15:49)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="119009">@eddyb</span> that <span class="user-mention" data-user-id="116466">@Zoxc</span> means that a <code>DefId</code> would be a <code>&amp;'tcx DefPath</code></p>



<a name="182773597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773597">(Dec 06 2019 at 15:49)</a>:</h4>
<p>it's not like a map is constructed later</p>



<a name="182773601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773601">(Dec 06 2019 at 15:49)</a>:</h4>
<p>though I could be wrong :)</p>



<a name="182773623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773623">(Dec 06 2019 at 15:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> seems incredibly disruptive</p>



<a name="182773630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773630">(Dec 06 2019 at 15:49)</a>:</h4>
<p>Probably a <code>u32</code> into a <code>Vec&lt;DefPath&gt;</code></p>



<a name="182773692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773692">(Dec 06 2019 at 15:50)</a>:</h4>
<p>ok -- enough on this :) I do want to talk about prioritization</p>



<a name="182773693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773693">(Dec 06 2019 at 15:50)</a>:</h4>
<p>but it's already that!</p>



<a name="182773706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773706">(Dec 06 2019 at 15:50)</a>:</h4>
<p>basically what we're doing now is starting already in on the idea of</p>



<a name="182773713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773713">(Dec 06 2019 at 15:50)</a>:</h4>
<p>let's try to design what HIR "ought to" look like</p>



<a name="182773743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773743">(Dec 06 2019 at 15:50)</a>:</h4>
<p>is that an effort we want to be embarking on now? how are we going to manage it, time-wise?</p>



<a name="182773789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773789">(Dec 06 2019 at 15:51)</a>:</h4>
<p>If we <em>are</em> going to do it, maybe we can ask some of the participants here to carve out time to collaborate on a design doc?</p>



<a name="182773812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773812">(Dec 06 2019 at 15:51)</a>:</h4>
<p>(And if we <em>aren't</em> going to do it, what does that mean about the proposed PR series?)</p>



<a name="182773822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773822">(Dec 06 2019 at 15:51)</a>:</h4>
<p>speaking personally, I really want to carve out time for <em>chalk</em> and for type library-ification efforts, for example, and if I had more time than that, it'd probably go into parallelization or just bug-fixing -- who is going to be the person with the time to be drviing on this designa nd building that design doc?</p>



<a name="182773825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773825">(Dec 06 2019 at 15:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> there is an AST visitor in <code>rustc::hir::map::def_collector</code> that interns DefPath nodes to get DefIndex's</p>



<a name="182773829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773829">(Dec 06 2019 at 15:51)</a>:</h4>
<blockquote>
<p>If we <em>are</em> going to do it, maybe we can ask some of the participants here to carve out time to collaborate on a design doc?</p>
</blockquote>
<p>yes</p>



<a name="182773841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773841">(Dec 06 2019 at 15:51)</a>:</h4>
<blockquote>
<p>(And if we <em>aren't</em> going to do it, what does that mean about the proposed PR series?)</p>
</blockquote>
<p>same question if we are, right?</p>



<a name="182773844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773844">(Dec 06 2019 at 15:51)</a>:</h4>
<p>from a high-level I prefer finishing as many ongoing projects as possible before starting new ones</p>



<a name="182773855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773855">(Dec 06 2019 at 15:51)</a>:</h4>
<p>I would personally loved to participate in such design, to learn how hir should look like in rust-analyzer :)</p>



<a name="182773913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773913">(Dec 06 2019 at 15:52)</a>:</h4>
<p>that was another question -- I feel like rust-analyzer is DOING this experiment</p>



<a name="182773922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773922">(Dec 06 2019 at 15:52)</a>:</h4>
<p>but without the backwards compatbility constriants and so forth</p>



<a name="182773930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773930">(Dec 06 2019 at 15:52)</a>:</h4>
<blockquote>
<blockquote>
<p>(And if we <em>aren't</em> going to do it, what does that mean about the proposed PR series?)</p>
</blockquote>
<p>same question if we are, right?</p>
</blockquote>
<p>if we are going to redesign HIR, I would think we would likely close the PR series?</p>



<a name="182773936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773936">(Dec 06 2019 at 15:52)</a>:</h4>
<p>ok, just wanted that to be clearly stated</p>



<a name="182773956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773956">(Dec 06 2019 at 15:52)</a>:</h4>
<p>I don't see why we wouldn't land any Zoxc PRs tbh</p>



<a name="182773971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773971">(Dec 06 2019 at 15:53)</a>:</h4>
<blockquote>
<p>that was another question -- I feel like rust-analyzer is DOING this experiment</p>
</blockquote>
<p>so like maybe a place to start is to look at rust-analyzer's  design and consider trying to mock things up in that context?</p>



<a name="182773998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182773998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182773998">(Dec 06 2019 at 15:53)</a>:</h4>
<blockquote>
<p>I don't see why we wouldn't land any Zoxc PRs tbh</p>
</blockquote>
<p>I think the idea would be: If they are introducing complexity and aren't moving us towards the end goal, then why add that tech debt?</p>



<a name="182774014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774014">(Dec 06 2019 at 15:54)</a>:</h4>
<p>but I welcome counter arguments</p>



<a name="182774082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774082">(Dec 06 2019 at 15:54)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> </p>
<blockquote>
<p>I think @Vadim Petrochenkov had ideas on how to create DefPaths already during parsing</p>
</blockquote>
<p>"create DefPaths already during parsing" -&gt; "create DefPaths for macro expansion IDs" (<a href="https://github.com/rust-lang/rust/issues/49300#issuecomment-525531109" target="_blank" title="https://github.com/rust-lang/rust/issues/49300#issuecomment-525531109">https://github.com/rust-lang/rust/issues/49300#issuecomment-525531109</a>)<br>
(Can't believe I made it to the meeting while it's still going.)</p>



<a name="182774083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774083">(Dec 06 2019 at 15:54)</a>:</h4>
<p>(slash, we haven't really even defined the end-goal yet)</p>



<a name="182774106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774106">(Dec 06 2019 at 15:54)</a>:</h4>
<p>I'm against landing the PRs. They introduce technical debt and make decisions that have not been discussed, like making the query system depend on queries.</p>



<a name="182774116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774116">(Dec 06 2019 at 15:54)</a>:</h4>
<p>e.g. if they <em>are</em> moving us towards the end-goal (just maybe in a slightly round-about fashion), then we can talk about landing them in parallel with the design of HIR-next.</p>



<a name="182774152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774152">(Dec 06 2019 at 15:55)</a>:</h4>
<p>OK, 5 minutes remaining. I have a relatively hard stop today.</p>



<a name="182774174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774174">(Dec 06 2019 at 15:55)</a>:</h4>
<p>It seems like we're not at a <em>consensus</em> one way or the other, but maybe we can at least summarize the state of things we talked about?</p>



<a name="182774198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774198">(Dec 06 2019 at 15:55)</a>:</h4>
<p>I'm going to try to drop some notes in <a href="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg?both" target="_blank" title="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg?both">the hackmd</a></p>



<a name="182774229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774229">(Dec 06 2019 at 15:56)</a>:</h4>
<blockquote>
<p>but I welcome counter arguments</p>
</blockquote>
<p>but I think this would be a good thing to hear about</p>



<a name="182774261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774261">(Dec 06 2019 at 15:56)</a>:</h4>
<p>I guess I can go back to the HIR owner/root stuff and try to come up with an informed plan</p>



<a name="182774286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774286">(Dec 06 2019 at 15:56)</a>:</h4>
<p>for what the HIR's coarse-grained hierarchy <em>could</em> look like</p>



<a name="182774300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774300">(Dec 06 2019 at 15:56)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I'd love for you and <span class="user-mention" data-user-id="116466">@Zoxc</span> to resolve your debate about what interned DefId means</p>



<a name="182774310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774310">(Dec 06 2019 at 15:56)</a>:</h4>
<p>including the map and all the tables</p>



<a name="182774311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774311">(Dec 06 2019 at 15:56)</a>:</h4>
<p>not necessarily in this topic</p>



<a name="182774473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774473">(Dec 06 2019 at 15:58)</a>:</h4>
<p>maybe <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> can chime in on that too</p>



<a name="182774551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774551">(Dec 06 2019 at 15:59)</a>:</h4>
<p>Okay well I have a hard out today too</p>



<a name="182774555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774555">(Dec 06 2019 at 15:59)</a>:</h4>
<p>the only problem with the current setup vs &amp;'tcx interning is ordering dependence (e.g. if you were to skip some work via incremental) but if you use an index (i.e. the same as today but perhaps allocated in a different place) you still have that</p>



<a name="182774572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774572">(Dec 06 2019 at 15:59)</a>:</h4>
<p>and it seems like we've sort of hit the edge of the discussion for this meeting</p>



<a name="182774578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774578">(Dec 06 2019 at 15:59)</a>:</h4>
<p>here is my summary :</p>



<a name="182774581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774581">(Dec 06 2019 at 15:59)</a>:</h4>
<ul>
<li>
<p>Vague summary of what was said<br>
    * The HIR part of this design alone is complex and might be worth pursuing<br>
        * there was a "vague sketch" of the design<br>
    * There are concerns that the PRs take us off in a direction without knowing the desired goal<br>
        * danger of increased tech debt<br>
        * they introduce more special cases to the query system, not less<br>
    * A counter note is that if you want to quickly move to a true end-to-end query state, the PR series is quite likely what that looks like<br>
        * i.e., we've discussed from time to time getting to end-to-end queries by "just" moving each pass into a query, and this is somewhat lke that<br>
    * An alternative proposal would be to<br>
        * close the PRs<br>
        * encourage creation of a WG to work out a design for HIR, HIR-ID and the like and bring that design forward<br>
        * land new PRs working in that direction<br>
        * this overlaps heavily with rust-analyzer and could even take place in that context</p>
</li>
<li>
<p>Some specific questions that arose and didn't seem to get fully fleshed out<br>
    * DefId, interning, and "queries depending on queries"<br>
        * what does it mean and how can we solve it:)</p>
</li>
</ul>



<a name="182774591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774591">(Dec 06 2019 at 16:00)</a>:</h4>
<p>uh, zulip sucks at bullet lists :( :( :(</p>



<a name="182774669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774669">(Dec 06 2019 at 16:00)</a>:</h4>
<p>better to read <a href="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg?both" target="_blank" title="https://hackmd.io/I7n9gRo5S0WtapTiIHviJg?both">the hackmd</a> I guess</p>



<a name="182774680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774680">(Dec 06 2019 at 16:00)</a>:</h4>
<h1>Heading</h1>
<ul>
<li>bullet</li>
<li>bullet</li>
</ul>
<h1>Heading</h1>
<ul>
<li>bullet</li>
<li>bullet</li>
</ul>



<a name="182774681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774681">(Dec 06 2019 at 16:00)</a>:</h4>
<p>but though I tried to be "inclusive" that is obviously colored by my understading and viewpoint</p>



<a name="182774702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774702">(Dec 06 2019 at 16:00)</a>:</h4>
<p>Zulip just corrupted its own rendering.... how is this app so bad</p>



<a name="182774708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774708">(Dec 06 2019 at 16:00)</a>:</h4>
<p>so please feel free to add things I missed or point out "biased" language</p>



<a name="182774730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774730">(Dec 06 2019 at 16:01)</a>:</h4>
<blockquote>
<p>uh, zulip sucks at bullet lists :( :( :(</p>
</blockquote>
<p>what's most annoying is that it used to handle them well :(</p>



<a name="182774745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774745">(Dec 06 2019 at 16:01)</a>:</h4>
<p>(who needs tree structured data!?!)</p>



<a name="182774867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774867">(Dec 06 2019 at 16:02)</a>:</h4>
<blockquote>
<p>Zulip just corrupted its own rendering.... how is this app so bad</p>
</blockquote>
<p>how dare you talk ill of Zulip. Join us, the kool-aid is delicious.</p>



<a name="182774877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774877">(Dec 06 2019 at 16:02)</a>:</h4>
<p>okay thanks for attending everyone!</p>



<a name="182774892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774892">(Dec 06 2019 at 16:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> btw remember my "def layer" diagrams? I might need to finally write up that proposal now :P</p>



<a name="182774925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774925">(Dec 06 2019 at 16:03)</a>:</h4>
<p>Yes, thanks all <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span>, this was (I think) productive, though I don't think we reached a final point -- I guess we can decide if we want to have a follow-up meeting and on what exact topic.</p>



<a name="182774933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774933">(Dec 06 2019 at 16:03)</a>:</h4>
<p>but we can start with the "HIR owners" we have today and go from there</p>



<a name="182774986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019-12-06/near/182774986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019-12-06.html#182774986">(Dec 06 2019 at 16:03)</a>:</h4>
<p>/me leaves at 3% battery</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>